package main

import "fmt"

func main() {
	//var a = 10
	//fmt.Printf("a的值：%v a的类型：%T a的地址%p \n", a, a, &a)   //a的值：10 a的类型：int a的地址0xc0000120b0%

	//指针也是一个变量，但它是一种特殊的变量，它存储的数据不是一个普通的值，而是另一个变量的内存地址
	//var a = 10
	//var p *int = &a                                    //p指针变量	p的类型 *int（指针类型）
	//fmt.Printf("a的值：%v a的类型：%T a的地址%p \n", a, a, &a)   //a的值：10 a的类型：int a的地址0xc0000120b0%
	//fmt.Printf("p的值：%v p的类型：%T p的地址%p \n", *p, *p, &p) //a的值：10 a的类型：int a的地址0xc0000120b0%

	//golang里面的变量都有一个内存地址（包括指针变量）
	var a = 10
	var b *int = &a                                  //p指针变量	p的类型 *int（指针类型）
	fmt.Printf("a的值：%v a的类型：%T a的地址%p \n", a, a, &a) //a的值：10 a的类型：int a的地址0xc0000120b0%
	fmt.Printf("b的值：%v b的类型：%T b的地址%p \n", b, b, &b) //a的值：10 a的类型：int a的地址0xc0000120b0%

}
